#include <DirectXMath.h>

using namespace DirectX;

int main(void)
{
    XMMATRIX worlMat = { 
        {0.54654f, 0.11778f, 0.06184f, -14.80793f},
        {-0.08155f, -0.51406f, 1.69988f, 13.11187f},
        {0.23199f, -0.9341f, -0.27135f, 72.52148f},
        {0.f, 0.f, 0.f, 1.f} 
    };

    XMVECTOR outPos = { 0 }, outRotation1 = { 0 }, outScale1 = { 0 };
    XMMatrixDecompose(&outScale1, &outRotation1, &outPos, worlMat);
    worlMat = XMMatrixTranspose(worlMat);

    XMMATRIX rotMat = XMMatrixRotationQuaternion(outRotation1);

    XMVECTOR newPos = { 1, 0, 0, 1 };

    //XMVector3Transform is the same
    XMVECTOR newPosTransformed = XMVector4Transform(newPos, rotMat);

    return 0;
}